package jdnn

//有些不清楚的数据结构，参考 protogo/gamecard/game.card.pb.go 和 protogo/gamejdnn/game.jdnn.pb.go

//--------------游戏开始----------------

//水位控制打印
//0xff -> 玩家水位控制前， 数据类型: *BeforeControl
//0x100 -> 玩家水位控制后， 数据类型: *AfterControl

type BeforeControl struct {
	//是否是机器人
	IsRobot bool `json:"isRobot" bson:"isRobot"`
	//杀分率
	KillRate float32 `json:"killRate" bson:"killRate"`
}

type AfterControl struct {
	//是否是机器人
	IsRobot bool `json:"isRobot" bson:"isRobot"`
	//杀分类型 -> 0: 正常，1: 杀分，2: 放分
	KillType int32 `json:"killType" bson:"killType"`
}

//--------------游戏进行中----------------
//Event_GRAB_BANKER 6815745 ->  开始抢庄, 数据类型: nil

// 开局第 1 秒 ，1 号位，手牌♠️A♦️K♥️J♣️8
// 开局第 1 秒 ，2 号位，手牌♠️A♦️K♥️J♣️8
// 开局第 1 秒 ，3 号位,  手牌♠️A♦️K♥️J♣️8
// 开局第 1 秒 ，4 号位，手牌♠️A♦️K♥️J♣️8

//Event_REPORT_GRAB_BANKER_INFO 6815746 -> 玩家抢庄信息, 数据类型: uint32 Multiple

// 开局第 3 秒，2 号位，开始抢庄, 抢庄倍数 3
// 开局第 4 秒，3 号位，不抢庄
// 开局第 5 秒，4 号位，开始抢庄, 抢庄倍数 2
// 开局第 7 秒，1 号位，不抢庄

//Event_BET 6815748 -> 下发抢庄结束，玩家开始下注， 数据类型: *BankerInfo

//开局第 7 秒，庄家座位号 2，庄家抢庄倍数 3

//Event_REPORT_BET_INFO 6815749 -> 玩家下注信息, 数据类型: uint32 Multiple

// 开局第 8 秒，4 号位，开始下注, 下注 15倍
// 开局第 9 秒，1 号位，开始下注, 下注 3倍
// 开局第 9 秒，3 号位，开始下注, 下注 4倍

//Event_SHOW_POKER 6815751 -> 下注结束，发送玩家手牌，共5张牌， 数据类型: []*gamecard.card

// 开局第 10 秒，1 号位，第五张牌 ♣️9
// 开局第 10 秒，2 号位，第五张牌 ♥️10
// 开局第 10 秒，3 号位，第五张牌 ♣️J
// 开局第 10 秒，4 号位，第五张牌 ♥️Q

//Event_REPORT_POKER_INFO 6815752 -> 玩家摊牌消息， 数据类型: nil

// 开局第 11 秒，1 号位，摊牌
// 开局第 11 秒，2 号位，摊牌
// 开局第 13 秒，3 号位，摊牌
// 开局第 14 秒，4 号位，摊牌

//抢庄结果信息，用于玩家抢庄结束后确定庄家，里面保存了 *BankerInfo 类型
type BankerInfo struct {
	//庄家座位号
	BankerSeat int32 `json:"bankerSeat" bson:"bankerSeat"`
	//抢庄倍数
	Multiple uint32 `json:"multiple" bson:"multiple"`
}

//--------------游戏结束--------------------
//用于游戏结束信息中的 Result interface{}, 里面保存了 *GameResult 类型
type GameResult struct {
	//是否是庄家
	IsBanker bool `json:"isBanker" bson:"isBanker"`
	//牛牛牌型，可以与game.qznn.pb.go里面的枚举类型 NotifyPokerInfo_Type 互相转换
	CardType int32 `json:"cardType" bson:"cardType"`
}
